package com.it.time;

import java.util.Calendar;
import java.util.Date;

public class TestCalendar {
    public static void main(String[] args) {
        // 目标：掌握Calendar的使用和特点

        /*
         * public static Calendar getInstance() => 获取当前日历对象
         * */

        // 1.得到系统此刻时间对应的日历对象
        Calendar now = Calendar.getInstance();
        System.out.println(now);
        System.out.println("----------------------------------------");

        /*
         * public int get(int field) => 获取日历中的某个信息
         * */

        // 2.获取日历中的某个信息
        int year = now.get(Calendar.YEAR);
        System.out.println(year);

        int days = now.get(Calendar.DAY_OF_YEAR);
        System.out.println(days);
        System.out.println("----------------------------------------");

        /*
            public final Date getTime() => 获取日期对象
         */

        // 3.拿到日历中记录的日期对象
        Date d = now.getTime();
        System.out.println(d);
        System.out.println("----------------------------------------");

        /*
         * public long getTimeInMillis() => 获取时间毫秒值
         */

        // 4.拿到毫秒值、
        long time = now.getTimeInMillis();
        System.out.println(time);
        System.out.println("----------------------------------------");

        /*
         * public void set(int field,int value) => 修改日历的某个信息
         */

        // 5.修改日历中的某个信息
        now.set(Calendar.MONTH, 8); // 修改月份成为10月份
        now.set(Calendar.DAY_OF_YEAR, 125); // 修改成一年中的第125天。
        System.out.println(now);
        System.out.println("----------------------------------------");

        /*
         * public void add(int field,int amount) => 为某个信息增加/减少指定的值
         */

        // 6.为某个信息增加或者减少多少
        now.add(Calendar.DAY_OF_YEAR, 100); // 加100天
        System.out.println(now);

        now.add(Calendar.DAY_OF_YEAR, -10); // 减10天
        now.add(Calendar.DAY_OF_MONTH, 6); // 加6个月
        now.add(Calendar.HOUR, 12); // 加12小时
        System.out.println(now);

//        注：Calendar是可变对象，一旦修改后其对象本身表示的时间将产生变化
    }
}
